/*!
    \copyright  Copyright (c) 2023 Qualcomm Technologies International, Ltd.\n
                All Rights Reserved.\n
                Qualcomm Technologies International, Ltd. Confidential and Proprietary.
    \file       
    \addtogroup connection_manager
    @{
    \brief      The sending of BLE link events from the Connection Manager using the Event Bus
*/

#ifndef __CON_MANAGER_EVENT_SEND_BLE_LINK_H
#define __CON_MANAGER_EVENT_SEND_BLE_LINK_H

#include <bdaddr.h>

/*! \brief Send the event to indicate BLE has connected.

    \param tpaddr The BT address.
*/
void ConManager_EventSendBleConnected(const tp_bdaddr * tpaddr);

/*! \brief Send the event to indicate BLE has disconnected.

    \param tpaddr The BT address.
    \param status The disconnect status.
*/
void ConManager_EventSendBleDisconnected(const tp_bdaddr * tpaddr, uint16 status);

/*! \brief Send the event to indicate BLE connection has failed.

    \param tpaddr The BT address.
*/
void ConManager_EventSendBleConnectingFailure(const tp_bdaddr * tpaddr);

/*! \brief Send the event to indicate BLE connection parameter update has been requested.

    \param tpaddr The BT address.
    \param conn_interval_min The minimum connection interval.
    \param conn_interval_max The maximum connection interval.
    \param conn_latency The connection latency.
    \param supervision_timeout The supervision timeout.
*/
void ConManager_EventSendBleConnParamUpdateReq(const tp_bdaddr * tpaddr,
                                                    uint16 conn_interval_min,
                                                    uint16 conn_interval_max,
                                                    uint16 conn_latency, 
                                                    uint16 supervision_timeout);

/*! \brief Send the event to indicate BLE connection parameter update has been successful.

    \param tpaddr The BT address.
    \param conn_interval The connection interval.
    \param conn_latency The connection latency.
    \param supervision_timeout The supervision timeout.
*/
void ConManager_EventSendBleConnParamUpdateSuccess(const tp_bdaddr * tpaddr, 
                                                    uint16 conn_interval,
                                                    uint16 conn_latency, 
                                                    uint16 supervision_timeout);
                                                    
/*! \brief Send the event to indicate BLE connection parameter update has failed.

    \param tpaddr The BT address.
    \param status The failure status.
*/
void ConManager_EventSendBleConnParamUpdateFailure(const tp_bdaddr * tpaddr, 
                                                    uint16 status);

#endif
/*! @} */